/**
* Copyright (c) By zengqh.
*
* This program is just for fun or demo, in the hope that it  
* will be useful, you can redistribute it and/or modify freely.
*
* Time: 2013/03/20
* File: EffectTechnique.h
**/

#pragma once

namespace HY
{
class Effect;
class EffectPass;
class ParameterManager;

class EffectTechnique
{
	friend class Effect;
public:
	Effect* getEffect() const;

	const std::string& getName() const;

	uint32 getNumOfPasses() const;
	EffectPass* createPass(const std::string& name);
	EffectPass* getPass(uint32 idx) const;

protected:
	EffectTechnique(Effect* eff, const std::string& name);
	virtual ~EffectTechnique();

protected:
	Effect*						fx_;
	std::string					name_;
	std::vector<EffectPass*>	eff_pass_list_;
};
}